package com.zzy.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class UtilNumber {

    public static boolean isNumber1(Object o){
        if(o==null){
            return  false;
        }else{
            Pattern pattern = Pattern.compile("[0-9]*");
            Matcher isNum = pattern.matcher(o.toString());
            if( !isNum.matches() ){
                return false;
            }
        }
        return  false;
    }


    /*1.用正则表达式
    首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
    *//**
     * 利用正则表达式判断字符串是否是数字
     * @param str
     * @return
     *//*
    public boolean isNumeric(String str){
        Pattern pattern = Pattern.compile("[0-9]*");
        Matcher isNum = pattern.matcher(str);
        if( !isNum.matches() ){
            return false;
        }
        return true;
    }
1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        2.用JAVA自带的函数

    public static boolean isNumeric(String str)
    {
　　for (int i = 0; i < str.length(); i++)
　　{　　
　　　　System.out.println(str.charAt(i));
　　　　if (!Character.isDigit(str.charAt(i)))
　　　　{
    　　　　return false;
   　　　}
　　}
　　return true;
    }

        3.使用org.apache.commons.lang

    org.apache.commons.lang.StringUtils;

    boolean isNunicodeDigits=StringUtils.isNumeric("aaa123456789");


    http://jakarta.apache.org/commons/lang/api-release/index.html下面的解释:

    public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.

            null will return false. An empty String ("") will return true.

            StringUtils.isNumeric(null)   = false

            StringUtils.isNumeric("")     = true

            StringUtils.isNumeric(" ")   = false

            StringUtils.isNumeric("123") = true

            StringUtils.isNumeric("12 3") = false

            StringUtils.isNumeric("ab2c") = false

            StringUtils.isNumeric("12-3") = false

            StringUtils.isNumeric("12.3") = false

            4、判断ASCII码值

    public static boolean isNumeric0(String str)
    {　　
　　for(int i=str.length();--i>=0;)
　　{
   　　int chr=str.charAt(i);
   　　if(chr<48 || chr>57)
    　　　　return false;
　　}
　　return true;
    }

        5、逐个判断str中的字符是否是0-9

    public static boolean isNumeric3(String str)
    {
        final String number = "0123456789";
        for(int i = 0;i < number.length; i ++)
        {
　　 if(number.indexOf(str.charAt(i)) == -1)
        {
            return false;
        }
        }
        return true;
    }

        6、捕获NumberFormatException异常

    public static boolean isNumeric00(String str)
    {
        try{
   　　Integer.parseInt(str);
   　　return true;
        }catch(NumberFormatException e)
        {
 　　System.out.println("异常：\"" + str + "\"不是数字/整数...");
 　　return false;
        }
    }
*/
}
